#!/usr/bin/env bash
#
# Neofetch config file
# https://github.com/dylanaraps/neofetch

# Speed up script by not using unicode
export LC_ALL=C
export LANG=C

# See this wiki page for more info:
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
print_info() {
    #info title
    #info underline

    info "OS" distro
    info "Kernel" kernel
    # info "Resolution" resolution
    # info "DE" de
    # info "WM" wm
    # info "WM Theme" wm_theme
    # info "Theme" theme
    # info "Icons" icons
    # info "Terminal" term
    # info "Terminal Font" term_font
    info "Model" model
    info "CPU" cpu
    info "GPU" gpu
    info "Memory" memory
    info "Disk" disk

    info "Packages" packages
    info "Shell" shell

    info "Uptime" uptime
    info "Local IP" local_ip
    # info "CPU Usage" cpu_usage
    # info "Battery" battery:q!
    # info "Font" font
    # info "Song" song
    # info "Public IP" public_ip
    # info "Users" users
    # info "Birthday" birthday

    info line_break
    # info cols
    # info line_break
}


# Kernel


# Shorten the output of the kernel function.
#
# Default:  'on'
# Values:   'on', 'off'
# Flag:     --kernel_shorthand
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
#
# Example:
# on:  '4.8.9-1-ARCH'
# off: 'Linux 4.8.9-1-ARCH'
kernel_shorthand="on"


# Distro


# Shorten the output of the distro function
#
# Default:  'off'
# Values:   'on', 'off', 'tiny'
# Flag:     --distro_shorthand
# Supports: Everything except Windows and Haiku
distro_shorthand="off"

# Show/Hide OS Architecture.
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
#
# Default: 'on'
# Values:  'on', 'off'
# Flag:    --os_arch
#
# Example:
# on:  'Arch Linux x86_64'
# off: 'Arch Linux'
os_arch="on"


# Uptime


# Shorten the output of the uptime function
#
# Default: 'off'
# Values:  'on', 'off', 'tiny'
# Flag:    --uptime_shorthand
#
# Example:
# on:   '2 days, 10 hours, 3 mins'
# off:  '2 days, 10 hours, 3 minutes'
# tiny: '2d 10h 3m'
uptime_shorthand="off"


# Shell


# Show the path to $SHELL
#
# Default: 'off'
# Values:  'on', 'off'
# Flag:    --shell_path
#
# Example:
# on:  '/bin/bash'
# off: 'bash'
shell_path="off"

# Show $SHELL version
#
# Default: 'on'
# Values:  'on', 'off'
# Flag:    --shell_version
#
# Example:
# on:  'bash 4.4.5'
# off: 'bash'
shell_version="on"


# CPU


# CPU speed type
#
# Default: 'bios'
# Values:  'current', 'min', 'max', 'bios',
# Flag:    --speed_type
# Supports: Linux with 'cpufreq'
speed_type="bios"

# Shorten the output of the CPU function
#
# Default: 'off'
# Values:  'on', 'off', 'tiny', 'name', 'speed'
# Flag:    --cpu_shorthand
#
# Example:
# on:    'i7-6500U (4) @ 3.1GHz'
# off:   'Intel i7-6500U (4) @ 3.1GHz'
# tiny:  'i7-6500U (4)'
# name:  'Intel i7-6500U (4)'
# speed: '3.1GHz'
cpu_shorthand="off"

# CPU Speed
# Hide/Show CPU speed.
#
# Default: 'on'
# Values:  'on', 'off'
# Flag:    --cpu_speed
#
# Example:
# on:  'Intel i7-6500U (4) @ 3.1GHz'
# off: 'Intel i7-6500U (4)'
cpu_speed="on"

# CPU Cores
# Display CPU cores in output
#
# Default: 'logical'
# Values:  'logical', 'physical', 'off'
# Flag:    --cpu_cores
# Support: 'physical' doesn't work on BSD.
#
# Example:
# logical:  'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
# off:      'Intel i7-6500U @ 3.1GHz'
cpu_cores="logical"

# CPU Temperature
# Hide/Show CPU temperature.
# Note the temperature is added to the regular CPU function.
#
# Default: 'off'
# Values:  'on', 'off'
# Flag:    --cpu_temp
# Supports: Linux
#
# Example:
# on:  'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
# off: 'Intel i7-6500U (4) @ 3.1GHz'
cpu_temp="on"


# GPU


# Enable/Disable GPU Brand
#
# Default: 'on'
# Values:  'on', 'off'
# Flag:    --gpu_brand
#
# Example:
# on:  'AMD HD 7950'
# off: 'HD 7950'
gpu_brand="on"


# Resolution


# Display refresh rate next to each monitor
# Default: 'off'
# Values:  'on', 'off'
# Flag:    --refresh_rate
# Supports: Doesn't work on Windows.
#
# Example:
# on:  '1920x1080 @ 60Hz'
# off: '1920x1080'
refresh_rate="off"


# Gtk Theme / Icons / Font


# Shorten output of GTK Theme / Icons / Font
#
# Default: 'off'
# Values:  'on', 'off'
# Flag:    --gtk_shorthand
#
# Example:
# on:  'Numix, Adwaita'
# off: 'Numix [GTK2], Adwaita [GTK3]'
gtk_shorthand="off"


# Enable/Disable gtk2 Theme / Icons / Font
#
# Default: 'on'
# Values:  'on', 'off'
# Flag:    --gtk2
#
# Example:
# on:  'Numix [GTK2], Adwaita [GTK3]'
# off: 'Adwaita [GTK3]'
gtk2="on"

# Enable/Disable gtk3 Theme / Icons / Font
#
# Default: 'on'
# Values:  'on', 'off'
# Flag:    --gtk3
#
# Example:
# on:  'Numix [GTK2], Adwaita [GTK3]'
# off: 'Numix [GTK2]'
gtk3="on"


# IP Address


# Website to ping for the public IP
#
# Default: 'http://ident.me'
# Values:  'url'
# Flag:    --ip_host
public_ip_host="http://ident.me"


# Song


# Print the Artist and Title on seperate lines
#
# Default: 'off'
# Values:  'on', 'off'
# Flag:    --song_shorthand
#
# Example:
# on:  'Artist: The Fratellis'
#      'Song: Chelsea Dagger'
#
# off: 'Song: The Fratellis - Chelsea Dagger'
song_shorthand="off"


# Birthday


# Shorten the output of the Birthday functon.
#
# Default:  'off'
# Values:   'on', 'off'
# Flag:     --birthday_shorthand
# Supports: 'off' doesn't work on OpenBSD and NetBSD.
#
# Example:
# on:  'Thu 14 Apr 2016 11:50 PM'
# off: '2016-04-14 23:50:55'
birthday_shorthand="off"

# Whether to show the time in the output
#
# Default:  'on'
# Values:   'on', 'off'
# Flag:     --birthday_time
#
# Example:
# on:  'Thu 14 Apr 2016 11:50 PM'
# off: 'Thu 14 Apr 2016'
birthday_time="on"

# Date format to use when printing birthday
#
# Default:  '+%a %d %b %Y %l:%M %p'
# Values:   'date format'
# Flag:     --birthday_format
birthday_format="+%a %d %b %Y %l:%M %p"


# Text Colors


# Text Colors
#
# Default:  'distro'
# Values:   'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag:     --colors
#
# Each number represents a different part of the text in
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
#
# Example:
# colors=(distro)      - Text is colored based on Distro colors.
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
colors=(distro)


# Text Options


# Toggle bold text
#
# Default:  'on'
# Values:   'on', 'off'
# Flag:     --bold
bold="on"

# Enable/Disable Underline
#
# Default:  'on'
# Values:   'on', 'off'
# Flag:     --underline
underline_enabled="on"

# Underline character
#
# Default:  '-'
# Values:   'string'
# Flag:     --underline_char
underline_char="-"


# Color Blocks


# Color block range
# Start/End refer to the range of colors
# to print in the blocks.
#
# Default:  '0', '7'
# Values:   'num'
# Flag:     --block_range
#
# Example:
#
# Display colors 0-7 in the blocks.
# neofetch --block_range 0 7
#
# Display colors 0-15 in the blocks.
# neofetch --block_range 0 15
start=0
end=7

# Toggle color blocks
#
# Default:  'on'
# Values:   'on', 'off'
# Flag:     --color_blocks
color_blocks="on"

# Color block width in spaces
#
# Default:  '3'
# Values:   'num'
# Flag:     --block_width
block_width=3

# Color block height in lines
#
# Default:  '1'
# Values:   'num'
# Flag:     --block_height
block_height=1


# Progress Bars


# Bar characters
#
# Default:  '-', '='
# Values:   'string', 'string'
# Flag:     --bar_char
#
# Example:
# neofetch --bar_char 'elapsed' 'total'
# neofetch --bar_char '-' '='
bar_char_elapsed="-"
bar_char_total="="

# Toggle Bar border
#
# Default:  'on'
# Values:   'on', 'off'
# Flag:     --bar_border
bar_border="on"

# Progress bar length in spaces
# Number of chars long to make the progress bars.
#
# Default:  '15'
# Values:   'num'
# Flag:     --bar_length
bar_length=15

# Progress bar colors
# When set to distro, uses your distro's logo colors.
#
# Default:  'distro', 'distro'
# Values:   'distro', 'num'
# Flag:     --bar_colors
#
# Example:
# neofetch --bar_colors 3 4
# neofetch --bar_colors distro 5
bar_color_elapsed="distro"
bar_color_total="distro"


# Info display
# Display a bar with the info.
#
# Default: 'off'
# Values:  'bar', 'infobar', 'barinfo', 'off'
# Flags:   --cpu_display
#          --memory_display
#          --battery_display
#          --disk_display
#
# Example:
# bar:     '[---=======]'
# infobar: 'info [---=======]'
# barinfo: '[---=======] info'
# off:     'info'
cpu_display="off"
memory_display="off"
battery_display="off"
disk_display="off"


# Image Options


# Image Source
#
# Default:  'ascii'
# Values:   'ascii', 'wallpaper', '/path/to/img', '/path/to/dir/', 'off'
# Flag:     --image
#
# NOTE: Change this to 'wallpaper', '/path/to/img' or /path/to/dir/' to enable image mode. You can also launch neofetch with '--image wallpaper' and etc.
image_source="ascii"

# Thumbnail directory
#
# Default: '~/.cache/thumbnails/neofetch'
# Values:  'dir'
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"

# w3m-img path
# Only works with the w3m backend.
#
# NOTE: Only change this if "neofetch -v" says that it "couldn't find w3m-img".
# Neofetch has a function that automatically finds w3m-img for you. It looks
# in the following directories:
#    /usr/lib/w3m/w3mimgdisplay
#    /usr/libexec/w3m/w3mimgdisplay
#    /usr/lib64/w3m/w3mimgdisplay
#    /usr/libexec64/w3m/w3mimgdisplay
# If w3m-img is installed elsewhere on your system, open an issue on the repo
# and I'll add it to the function inside the script. If w3m-img is installed
# in a non-standard way (in your home folder, etc) then change the variable
# below to the custom location. Otherwise, don't touch this.
w3m_img_path="/usr/lib/w3m/w3mimgdisplay"

# Crop mode
#
# Default:  'normal'
# Values:   'normal', 'fit', 'fill'
# Flag:     --crop_mode
#
# See this wiki page to learn about the fit and fill options.
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
crop_mode="normal"

# Crop offset
# Note: Only affects 'normal' crop mode.
#
# Default:  'center'
# Values:   'northwest', 'north', 'northeast', 'west', 'center'
#           'east', 'southwest', 'south', 'southeast'
# Flag:     --crop_offset
crop_offset="center"

# Image size
# The image is half the terminal width by default.
#
# Default: 'auto'
# Values:  'auto', '00px', '00%', 'none'
# Flags:   --image_size
#          --size
image_size="auto"

# Ggap between image and text
#
# Default: '3'
# Values:  'num', '-num'
# Flag:    --gap
gap=8

# Image offsets
# Only works with the w3m backend.
#
# Default: '0'
# Values:  'px'
# Flags:   --xoffset
#          --yoffset
yoffset=0
xoffset=0

# Image background color
# Only works with the w3m backend.
#
# Default: ''
# Values:  'color', 'blue'
# Flag:    --bg_color
background_color=


# Ascii Options


# Default ascii image to use
# When this is set to distro it will use your
# distro's logo as the ascii.
#
# Default: 'distro'
# Values:  'distro', '/path/to/ascii_file'
# Flag:    --ascii
ascii="distro"

# Ascii distro
# Which distro's ascii art to display.
#
# Default: 'auto'
# Values:  'auto', 'distro_name'
# Flag:    --ascii_distro
#
# NOTE: Arch and Ubuntu have 'old' logo varients.
#       Change this to 'arch_old' or 'ubuntu_old' to use the old logos.
# NOTE: Ubuntu has flavor varients.
#       Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME' or 'Ubuntu-Budgie' to use the flavors.
ascii_distro="linux"

# Ascii Colors
#
# Default:  'distro'
# Values:   'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag:     --ascii_colors
#
# Example:
# ascii_colors=(distro)      - Ascii is colored based on Distro colors.
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
ascii_colors=(distro)

# Logo size
# Arch, Crux and Gentoo have a smaller logo
# variant. Changing the value below to small
# will make neofetch use the small logo.
#
# Default: 'normal'
# Values:  'normal', 'small'
# Flag:    --ascii_logo_size
ascii_logo_size="normal"

# Bold ascii logo
# Whether or not to bold the ascii logo.
#
# Default: 'on'
# Values:  'on', 'off'
# Flag:    --ascii_bold
ascii_bold="on"


# Scrot Options


# Whether or not to always take a screenshot
# You can manually take a screenshot with "--scrot" or "-s"
#
# Default: 'off'
# Values:  'on', 'off'
# Flags:   --scrot
#          -s
scrot="off"

# Screenshot Program
# Neofetch will automatically use whatever screenshot tool
# is installed on your system.
#
# If 'neofetch -v' says that it couldn't find a screenshot
# tool or you're using a custom tool then you can change
# the option below to a custom command.
#
# Default: 'auto'
# Values:  'auto' 'cmd -flags'
# Flag:    --scrot_cmd
scrot_cmd="auto"

# Screenshot Directory
# Where to save the screenshots
#
# Default: '~/Pictures/'
# Values:  'dir'
# Flag:    --scrot_dir
#
# Note: Neofetch won't create the directory if it doesn't exist.
scrot_dir="$HOME/Pictures/"

# Screenshot Filename
# What to name the screenshots
#
# Default: 'neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png'
# Values:  'string'
# Flag:    --scrot_name
scrot_name="neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png"

# Image upload host
# Where to upload the image.
#
# Default: 'teknik'
# Values:  'imgur', 'teknik'
# Flag:    --image_host
#
# NOTE: If you'd like another image host to be added to Neofetch.
#       Open an issue on github.
image_host="teknik"


# Config Options


# Enable/Disable config file
#
# Default: 'on'
# Values:  'on', 'off'
# Flag:    --config
# --config off, none
#
# Note: This option is only used when neofetch sources this config
# as a default config and NOT as a user config. Changing this in
# your user config won't actually do anything.
config="on"

# Path to custom config file location
#
# Default: '${XDG_CONFIG_HOME:-${HOME}/.config}/neofetch/config'
# Values:  '/path/to/config'
# Flag:    --config_file
#
# Note: This option is only used when neofetch sources this config
# as a default config and NOT as a user config. Changing this in
# your user config won't actually do anything.
config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/neofetch/config"
